package com.jf.cloud.service.sysmanager.dao;

import java.util.List;
import java.util.Map;

import com.jf.cloud.service.sysmanager.common.base.IBaseService;
import com.jf.cloud.service.sysmanager.common.base.OPaging;
import com.jf.cloud.service.sysmanager.entity.PubgTeam;
import com.jf.cloud.service.sysmanager.entity.PubgUserMatch;
import com.jf.cloud.service.sysmanager.entity.PubgUserTeam;


/**
 * 员工服务接口
 * 
 * @author 代码机1.0 创建时间：2018-03-31
 */
public interface IPubgTeamService extends IBaseService<PubgTeam, Long> {

	/**
	 * 根据角色获取用户的战队
	 * 
	 * @author 朱建文 创建时间：2018年3月31日 下午5:53:33
	 */
	public List<Map<String, Object>> findPubgTeamListByRole(OPaging<Map<String, Object>> page);
	
	/**
	 * 添加/更新战队
	 * 
	 * @author 朱建文 创建时间：2018年4月3日 下午3:05:15
	 */
	public boolean addPubgTeam(PubgTeam pubgTeam) throws Exception;
	
	/**
	 * 获取战队详情
	 * 
	 * @author 朱建文 创建时间：2018年3月31日 下午5:53:33
	 */
	public Map<String, Object> findPubgTeamDetail(Long userId, String userRole, Long rowId) throws Exception;

	/**
	 * 获取队员加入比赛审核列表
	 * 
	 * @author 朱建文 创建时间：2018年4月11日 下午4:08:42
	 */
	public Map<String, Object> getAuditMemberJoinMacthList(Long matchId, Long teamId, String userName) throws Exception;
	
	/**
	 * 队长审核队员的入队申请
	 * 
	 * @author 朱建文 创建时间：2018年4月4日 下午1:20:19
	 */
	public void updateMemberRelationState(PubgUserTeam pubgUserTeam, Integer relationState) throws Exception;

	/**
	 * 更新队员的余额 并插入流水
	 * 
	 * @author 朱建文 创建时间：2018年4月4日 下午5:21:28
	 */
    public void updateTeamMemberBalance(PubgTeam pubgTeam, PubgUserTeam pubgUserTeam, Integer optType, Double optMoney) throws Exception;
	
	/**
	 * 移除队员并更新当前战队的队员总数
	 * 
	 * @author 朱建文 创建时间：2018年4月3日 下午7:56:37
	 * @throws Exception 
	 */
	public boolean removeUser(Long clubId, Long teamId, Long userId) throws Exception;

	/**
	 * 审核队员是否加入比赛
	 * 
	 * @author 朱建文 创建时间：2018年4月8日 下午2:20:22
	 */
	public void auditMemberIsJoinMacth(PubgUserMatch pubgUserMatch, Integer auditState, Double userBalance, Double userTeamBalance) throws Exception;

	/**
	 * 更新战队广告信息
	 * 
	 * @author 朱建文 创建时间：2018年5月2日 下午4:11:43
	 */
	public void updateExternalADInfo(PubgTeam pubgTeam) throws Exception;
	
	/**
	 * 检查战队靓号是否重复
	 *
	 * @author 高冬冬 创建时间：2018年4月14日
	 */
	public boolean checkTeamNoIsExist(Long rowId, String teamNo) throws Exception;
}
